R Markdown é uma ferramenta poderosa que combina a simplicidade da linguagem Markdown com a capacidade analítica do R, permitindo a criação de documentos dinâmicos e reprodutíveis. Ele é amplamente utilizado para gerar relatórios, apresentações, dashboards e até livros inteiros, integrando texto, código, resultados e formatação em um único arquivo.
Para usar o R Markdown, é preciso instalar e carregar o pacote no R.
if (!require("rmarkdown")) install.packages("rmarkdown")
library(rmarkdown)
Para criar um novo documento R Markdown:
Abra o RStudio.
Vá em File > New File > R Markdown.
Preencha as informações básicas e clique em OK.
Um documento R Markdown (extensão .Rmd) é composto por três elementos principais:
Cabeçalho YAML: Metadados que controlam a formatação do documento
Textos formatados em Markdown: Conteúdo narrativo com formatação simples
Chunks de código: Blocos de código em R ou outras linguagens
O cabeçalho YAML é a seção inicial do documento, delimitada por
---. Ele define metadados como título, autor, data,temas e
formato de saída.
As principais chaves para o cabeçalho são as seguintes:
title: Título do documento
author: Nome(s) do(s) autor(es)
date: Data no documento
format: Formato de saída
toc: Tabela de conteúdos
theme: Tema visual
---
title: "Título do documento"
author:
- name: "Autor(a) 1"
- name: "Autor(a) 2 "
output:
html_document:
theme:
bg : '#ffffff' # cor do fundo
fg : '#140945' # cor do texto
toc: yes
---
Existem alguns temas prontos para utilizar no theme. Neste RPubs há alguns exemplos
# Título Principal
## Subtítulo
### Subseção
#### Subsubseção
Negrito: **texto**
Itálico: *texto*
Negrito e itálico:
***texto***
Tachado: ~~texto~~
Para listas não ordenadas utiliza-se - ou
*
Item 1: - Item 1
Item 2: - Item 2
- subitem 2.1Item 1: * Item 1
Item 2: * Item 2
* subitem 2.1Para listas ordenadas utiliza-se o número seguido do ponto
1. Primeiro item2. Segundo item 2.1. Primeiro subitem
2.1: 1. Subitem 2.1No Markdown, existem duas maneiras para adicionar links.
Link direto: O endereço ficará visível e clicável . O endereço em
forma de link direto tem o formato
<https://exemplo.com/>.
Texto-âncora: adicione entre colchetes o texto que você quer que
apareça, e entre os parênteses, o endereço de destino, no formato
[exemplo](https://exemplo.com/).
Exemplo: https://github.com/lesuff e GitHub do LES
Os chunks de códigos são iniciados por ``` {r, …} e fechados por ``` . Eles possuem uma série de argumentos que manipulados apropriadamente rendem diferentes saídas, isto é, pode-se omitir código, resultados do código, entre outras. Abaixo, são apresentadas os principais argumentos.
| Opção | Valor Padrão | Descrição |
|---|---|---|
| eval | TRUE | Indica se o código deve ser executado |
| include | TRUE | Indica se o código deve ser exibido no documento final. Os resultados não serão apresentados. |
| collapse | FALSE | Indica se o código e os resultados do chunk devem ser colapsados em um bloco único. |
| echo | FALSE | Indica se o código será exibido no documento final. Os resultados serão apresentados. |
| error | TRUE | Indica se mensagens de erros serão exibidas. |
| message | TRUE | Indica se mensagens geradas pelo código serão exibidas. |
| warning | TRUE | Indica se avisos gerados pelo código serão exibidos. |
| fig.cap | NULL | Título de gráfico referente ao chunk. |
| fig.height | 7 | Altura para gráficos criados pelo código (em polegadas). |
| fig.width | 7 | Largura para gráficos criados pelo código (em polegadas). |
Use $equação$ para equações dentro do texto, como \(E = mc^2\) ou \(\sum_{i=1}^n i = \frac{n(n+1)}{2}\).
$E = mc^2$ ou $\sum_{i=1}^n i = \frac{n(n+1)}{2}$
Para equações em destaque, coloque a expressão entre
$$
$$
f(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2}
$$
\[ f(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2} \]
knitr::include_graphics("Imagens/dataviz.png")
Usar | para delimitar as colunas e hífen -
na segunda linha para indicar que acima estão os títulos das colunas. O
alinhamento da tabela é controlado utilizando : ao lado do
campo horizontal de hífens ---, na segunda linha da
tabela.
| Alinhado à esquerda | Centralizado | Alinhado à direita |
|:---------------------|:-----------:|-------------------:|
| Conteúdo | Conteúdo | Conteúdo |
| Alinhado à esquerda | Centralizado | Alinhado à direita |
|---|---|---|
| Conteúdo | Conteúdo | Conteúdo |
Dentro do chunk com o pacote knitr:
performance = read_csv("bases/student_habits_performance.csv")
# Criar tabela descritiva
dados_resumo <- data.frame(Variável = c("Nota", "Horas de Netflix", "Horas de Estudo",
"Horas de sono"), Média = c(mean(performance$exam_score), mean(performance$netflix_hours),
mean(performance$study_hours_per_day), mean(performance$sleep_hours)), Desvio_Padrão = c(sd(performance$exam_score),
sd(performance$netflix_hours), sd(performance$study_hours_per_day), sd(performance$sleep_hours)),
Mínimo = c(min(performance$exam_score), min(performance$netflix_hours), min(performance$study_hours_per_day),
min(performance$sleep_hours)), Máximo = c(max(performance$exam_score), max(performance$netflix_hours),
max(performance$study_hours_per_day), max(performance$sleep_hours)))
knitr::kable(dados_resumo, digits = 2, caption = "Estatísticas Descritivas")
| Variável | Média | Desvio_Padrão | Mínimo | Máximo |
|---|---|---|---|---|
| Nota | 69.60 | 16.89 | 18.4 | 100.0 |
| Horas de Netflix | 1.82 | 1.08 | 0.0 | 5.4 |
| Horas de Estudo | 3.55 | 1.47 | 0.0 | 8.3 |
| Horas de sono | 6.47 | 1.23 | 3.2 | 10.0 |
Códigos embutidos permitem inserir resultados de R diretamente no texto. Use “r código” entre crases ```` para avaliar expressões R inline.
Exemplos:
A data de hoje é `r Sys.Date()`
O número de linhas no dataset é `r nrow(mtcars)`
A nota média dos alunos da base é `r mean(performance$exam_score)`